package cn.kgc.spring.day03.servlet;

import cn.kgc.spring.day03.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;

/**
 * @author 课工场
 * @date 2024/7/15
 * @description
 *       通过注解实现对象的创建之后,为了实现对象中属性的初始化操作,可以在需要初始化的属性上添加注解
 *       @Autowired
 *           byType  默认
 *           byName  根据类型不能注入时 会尝试通过属性名进行注入  如果两个都无法实现注入则抛出异常
 *       @Qualifier("userServiceImplB")   根据类型和属性名都不能完成属性注入时 可以通过配合@Qualifier注解指定需要注入的对象key
 *
 *      注意: 被@Autowired注解修饰的属性  在初始化时默认必须要赋值 否则抛出异常  因为注解中有 required() default true
 *            可以通过覆盖默认值  实现参数不是必须初始化的值
 *
 */
@Controller
public class UserServlet {

    @Autowired
    @Qualifier("userServiceImplB")
    private UserService userService;

    // @Autowired
    // public void  setUserService(@Qualifier("userServiceImplB") UserService userService){
    //     System.out.println("---------------------");
    //     this.userService = userService;
    // }

    // @Autowired  使用构造方法实现属性的初始化 注解可以省略
    // public UserServlet(@Qualifier("userServiceImplB")UserService userService){
    //     System.out.println("--------UserServlet()----------");
    //     this.userService = userService;
    // }

    public Boolean  removeUser(Integer id){
      return   userService.deleteUser(id);
    }

}
